package com.docmgmt.mvp.service;

import com.docmgmt.mvp.dto.AddFolderPermissionRequest;
import com.docmgmt.mvp.dto.FolderPermissionVO;
import com.docmgmt.mvp.dto.UpdateFolderPermissionRequest;
import com.docmgmt.mvp.entity.FolderPermissionEntity;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 文件夹权限表 服务类
 * </p>
 *
 * @author Dora
 */
public interface FolderPermissionService extends IService<FolderPermissionEntity> {

    /**
     * 查询文件夹权限列表
     *
     * @param folderId 文件夹ID
     * @param userId   当前用户ID
     * @return 权限列表
     */
    List<FolderPermissionVO> listFolderPermissions(Long folderId, Long userId);

    /**
     * 添加文件夹权限
     *
     * @param folderId 文件夹ID
     * @param request  请求参数
     * @param userId   当前用户ID
     * @return 新增的权限VO
     */
    FolderPermissionVO addFolderPermission(Long folderId, AddFolderPermissionRequest request, Long userId);

    /**
     * 更新文件夹权限
     *
     * @param folderId     文件夹ID
     * @param permissionId 权限ID
     * @param request      请求参数
     * @param userId       当前用户ID
     * @return 更新后的权限VO
     */
    FolderPermissionVO updateFolderPermission(Long folderId, Long permissionId, UpdateFolderPermissionRequest request, Long userId);

    /**
     * 删除文件夹权限
     *
     * @param folderId     文件夹ID
     * @param permissionId 权限ID
     * @param userId       当前用户ID
     */
    void deleteFolderPermission(Long folderId, Long permissionId, Long userId);
}
